package com.xuzy.x808.entity;


import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MsgHeader {

    /**
     * 消息Id [0-1] 2byte
     */
    private int msgId;
    /**
     * 【消息体属性】 [2-3] 2byte
     */
    private String msgBodyProps;


    /***以下16位都是【消息体属性】2字节的内容****/
    /**
     * 保留位[15-14]
     */
    private String reservedBit;
    /**
     * 是否分包[13] 为1时表示消息体为长消息，进行分包发送处理，具体分包信息看【消息包封装项】。为0，则消息头中无消息包封装项字段
     */
    private boolean hasSubPackage;
    /**
     * 数据加密方式[12-10] 此三位都为0，表示消息体不加密，第10位为1，表示消息体经过 RSA 算法加密
     */
    private int encryptionType;
    /**
     * 消息体长度 [9-0]
     */
    private int msgBodyLength;
    /***以上16位都是消息体属性2字节的内容****/


    /**
     * 终端手机号 BCD格式的，[4-9] 6byte
     */
    private String devId;
    /**
     * 流水号 [10-11] 2byte
     */
    private int seq;


    /***以下32位都是【消息包封装项】4字节的内容，定义分包的信息，如果没有消息包封装项，则从字节12位置开始，就是消息体内容****/
    /**
     * 消息包总数 [12-13] 2字节
     */
    private long totalSubPackage;
    /**
     * 消息包序号 [14-15] 2字节
     */
    private long subPackageSeq;

}
